14 - Netzwerkprotokoll SMTP
1. Einleitung - Warum braucht man SMTP überhaupt?
Wenn man eine E-Mail verschickt, passiert im Hintergrund deutlich mehr als nur "Senden drücken". Das Protokoll, das dafür zuständig ist, heißt SMTP - Simple Mail Transfer Protocol.
SMTP ist das Protokoll für den Versand von E-Mails zwischen Mail-Clients und Mail-Servern sowie zwischen Mail-Servern untereinander. Es kümmert sich ausschließlich um das Senden und Weiterleiten von Nachrichten. Das Abholen von E-Mails läuft dagegen über andere Protokolle wie POP3 oder IMAP.
Wichtig: SMTP arbeitet textbasiert. Das bedeutet, dass Server und Client sich mit klar lesbaren Befehlen unterhalten - ähnlich wie bei Telnet.
2. Was macht SMTP konkret?
SMTP übernimmt mehrere Aufgaben:
- Annahme einer E-Mail vom Mail-Client
- Weiterleitung an den zuständigen Mailserver
- Transport über mehrere Server hinweg
- Fehlerbehandlung (z. B. Empfänger nicht erreichbar)
- Statusmeldungen (z. B. "Mailbox unavailable")
Man kann sich SMTP wie ein digitales Postverteilzentrum vorstellen. Es prüft: "Wo muss diese Nachricht hin?" und sorgt dafür, dass sie an den richtigen Zielserver gelangt.
3. TCP/IP Ports von SMTP
SMTP verwendet standardmäßig folgende Ports:
Port 25 (TCP)- Klassischer SMTP-Port
- Wird hauptsächlich für Server-zu-Server-Kommunikation verwendet
- Oft für Clients gesperrt (Spam-Schutz durch Provider)
- Submission-Port
- Wird von Mail-Clients zum Versand genutzt
- Unterstützt Authentifizierung und STARTTLS
Port 465 wird heute als "SMTP Submission over implicit TLS" verwendet. Die TLS-Verschlüsselung wird hier direkt beim Verbindungsaufbau aktiviert (kein STARTTLS nötig).
Merksatz:
25 = Server zu Server
587 = Client zu Server
465 = älteres SMTPS
4. Sicherheits-Erweiterungen von SMTP
Das ursprüngliche SMTP war komplett unverschlüsselt.
Das bedeutet: Benutzername, Passwort und Mailinhalt konnten im Klartext übertragen werden.
Das ist heute natürlich inakzeptabel. Deshalb gibt es Erweiterungen:
STARTTLSSTARTTLS ist eine Erweiterung, mit der eine unverschlüsselte SMTP-Verbindung nachträglich auf TLS-Verschlüsselung umgestellt wird.
Ablauf:
- Verbindung beginnt unverschlüsselt
- Client sendet EHLO
- Server meldet STARTTLS als Capability
- Client sendet STARTTLS
- TLS-Handshake beginnt
Das ist heute Standard auf Port 587.
SMTPS (SSL/TLS von Anfang an)
Früher wurde SMTP direkt über SSL verschlüsselt (Port 465).
Technisch korrekt ist heute die Verwendung von TLS, da SSL veraltet und unsicher ist.
5. TLS vs. SSL - Was ist der Unterschied?
SSL (Secure Sockets Layer) war der ursprüngliche Standard zur Verschlüsselung von Netzwerkverbindungen.
TLS (Transport Layer Security) ist die modernere und sichere Weiterentwicklung von SSL.
Wichtige Punkte:
- SSL 2.0 und 3.0 gelten als unsicher
- TLS 1.2 und 1.3 sind aktuelle sichere Standards
- TLS ist technisch gesehen der Nachvolger von SSL
- Man sollte ausschließlich TLS verwenden
Viele Systeme sprechen noch von "SSL", meinen aber technisch TLS.
6. Wie läuft eine einfache SMTP-Kommunikation ab?
Hier ist einmal der strukturierte Ablauf:
1. Mail wird im Client erstellt
Du schreibst eine Mail in Outlook oder Thunderbird und klickst auf "Senden".
2. Verbindung zum SMTP-Server
Der Client verbindet sich mit dem konfigurierten SMTP-Server über Port 587.
3. Authentifizierung
Der Client meldet sich mit Benutzername und Passwort an.
Bei Server-zu-Server-Kommunikation erfolgt normalerweise keine Benutzer-Authentifizierung.
4. SMTP-Befehle
Die Kommunikation läuft textbasiert ab:
HELO oder EHLO
MAIL FROM:
RCPT TO:
DATA
QUIT
Beispiel vereinfacht:
EHLO mailserver.de
MAIL FROM: sender@firma.de
RCPT TO: empfaenger@ziel.de
DATA
Nachrichtentext
.
QUIT
7. Namensauflösung und MX-Record - Wie findet die Mail den richtigen Server?
Hier kommt DNS ins Spiel.
Wenn du eine Mail an max@example.com sendest, passiert Folgendes:
- Der Mailserver schaut sich die Domain an: example.com
- Er fragt einen DNS-Server:
"Welcher Mailserver ist für example.com zuständig?" - DNS antwortet mit einem MX-Record (Mail Exchange Record)
Ein MX-Record enthält:
- Priorität
- Ziel-Mailserver
Beispiel:
example.com ⟶ MX ⟶ mail.example.com
Jetzt weiß der sendende Mailserver, wohin er die Mail zustellen muss.
In der Praxis funktioniert SMTP nur mit DNS. Üblicherweise über MX-Records. ersatzweise über A-Records.
8. Kompletter Ablauf vom Senden bis zur Zustellung
- Benutzer klickt auf "Senden"
- Client verbindet sich mit SMTP-Server (Submission Port 587)
- TLS-Verschlüsselung wird aufgebaut
- Authentifizierung erfolgt
- SMTP-Befehle werden übertragen
- Der Server prüft die Empfänger-Domain
- DNS-Abfrage nach MX-Record
- Verbindung zum Ziel-Mailserver über Port 25
- Übergabe der Mail
- Zielserver speichert Mail im Postfach
Erst danach kann der Empfänger die Mail per IMAP oder POP3 abrufen.
9. Zusammenfassung - Was man verstanden haben sollte
SMTP ist das Protokoll für den Versand von E-Mails.
Es nutzt TCP, hauptsächlich Port 25 und 587.
Moderne Sicherheit basiert auf TLS.
SSL ist veraltet und sollte nicht mehr verwendet werden.
Die Zustellung funktioniert nur mit DNS und MX-Records.
Die Kommunikation läuft textbasiert über klar definierte Befehle.
SMTP ist ursprünglich unverschlüsselt komzipiert worden. Die Verschlüsselung erfolgt über TLS als Transport-Layer-Erweiterung.